
package session.stateless;

import entity.ProductionSchedule;
import entity.ProductionScheduleDay;
import entity.PurchaseItem;
import entity.Warehouse;
import java.util.ArrayList;
import java.util.Date;
import javax.ejb.Local;


@Local
public interface ProductionScheduleSessionBeanLocal {
    public void addProductionSchedule(ProductionSchedule productionSchedule);
    public ArrayList <ProductionSchedule> getProductionSchedules (Integer month, Integer year);
    public ArrayList <ProductionSchedule> getProductionSchedules ();
    public ArrayList <String> getPhs (String url);
    public ArrayList<ProductionScheduleDay> getProductionScheduleDays (String type);
    public void removeProductionSchedule(Integer month, Integer year);
    public void removeProductionScheduleDays (String status);
    public void removePurchaseItemFromPSD(Long productionScheduleDayId, Long purchaseItemId);
    public void addPurchaseItemToPSD(Long productionScheduleDayId, Long purchaseItemId,Boolean isBackOrder);
    public void addBackOrder (ProductionScheduleDay psd);
    public void removePurchaseItemFromPSDs(Long purchaseItemId);
    public Date checkDateFromPlan (String code, Integer quantity, Integer month, Integer year);
    public Boolean ATPCheck(Warehouse wh, ArrayList<PurchaseItem> purchasedItems, ArrayList <ProductionSchedule> productionSchedules);
    public void updateProductionScheduleDay (Long psdId, Integer reservedQuantity);
    public void reservePurchaseItem (Warehouse wh, Long poId, ArrayList <ProductionSchedule> productionSchedules);
    public ArrayList <Date> getUpdatedPurchaseItemsDates (Warehouse wh, ArrayList<PurchaseItem> purchasedItems, ArrayList <ProductionSchedule> productionSchedules);
    
    
}
